{{tag>dapper edgy feisty p2p}}

----

====== MLDonkey ======

**MLDonkey** est un client [[P2P]] multiplate-forme, pour les réseaux [[wpfr>EDonkey2000|eDonkey]], [[wpfr>BitTorrent_(protocole)|BitTorrent]] mais aussi [[FTP]], les [[wpfr>Direct_download|téléchargement direct]] et bien d'autres encore.

Contrairement aux logiciels tels que [[aMule]] ou [[Transmission]], il ne nécessite pas d'interface graphique pour continuer à télécharger. Accessible par [[wpfr>interface web]] ou [[wpfr>interfaces graphiques]] dédiées, MLDonkey est idéal à placer sur un serveur commandé à distance.

===== Installation =====

[[:tutoriel:comment_installer_un_paquet|Installez le paquet]] **[[apt://mldonkey-server|mldonkey-server]]**

Lors de l'installation une question vous sera posée: **Faut-il lancer MLDonkey au démarrage du système?**\\
À vous de choisir en fonction de votre utilisation de MLDonkey, mais sachez que ce choix impliquera par la suite une configuration complexe du logiciel que vous pourriez contourner en le démarrant avec une session ou manuellement. Vous pouvez paramétrer le démarrage automatique plus tard si vous ne savez pas.

===== Lancement =====

Nous venons d'installer MLDonkey. Vous ne trouverez pas d'entrée dans le menu applications concernant MLDonkey puisque c'est un [[wpfr>Disk_and_execution_monitor|démon]]. Ensuite vous utiliserez un client graphique qui permettra de contrôler ce démon.

====En mode standard====

Pour démarrer ou arrêter MLDonkey copiez dans un terminal :

__Pour le démarrer :__
  mlnet

__Pour le stopper :__
  sudo killall mlnet

__Démarrer MLDonkey à l'ouverture de la session :__\\
Ajouter la commande **mlnet** [[tutoriel/application_demarrage#lancer_le_gestionnaire_d_applications_au_demarrage|sur le gestionnaire d'applications au démarrage]].

====En mode démon====

Avec ce mode, même si vous changez ou quittez la session de l'ordinateur sur lequel est en fonction le démon, MLDonkey continuera à être actif. 

<note important>Si vous utilisez le mode démon, vous devrez manuellement paramétrer MLDonkey pour qu'il utilise entre autres votre répertoire personnel pour enregistrer les téléchargements en court et finaux, et gérer la gestions des droits. Ce qui peut s’avérer difficile pour les néophytes.</note>

__Pour le démarrer :__
  sudo /etc/init.d/mldonkey-server start

__Pour le stopper :__
  sudo /etc/init.d/mldonkey-server stop
  
__Activer le démon MLDonkey au démarrage de l'ordinateur :__\\
Il vous faut [[:tutoriel:comment_editer_un_fichier|éditer le fichier]] ''/etc/default/mldonkey-server'' et mettre le paramètre **LAUNCH_AT_STARTUP** à **true**.

===== Configuration du démon MLDonkey =====

<note>MLDonkey a subit de nombreuses modifications, certaines des informations concernant sa configuration sont partiellement obsolètes.</note>

==== Configuration des répertoires ====

Comme tout bon logiciel de P2P, MLDonkey a besoin de deux répertoires pour fonctionner :
  * Un répertoire **temp** dans lequel il stockera les fichiers en cours de téléchargement.
  * un répertoire **incoming** dans lequel il placera les fichiers téléchargés.

Par défaut ces deux répertoires se situent dans ''/var/lib/mldonkey'', ce qui n'est pas très pratique. Nous allons donc modifier le démon afin qu'il place ces répertoires dans votre dossier personnel.

Avant de toucher au fichier de configuration du démon nous devons éteindre celui ci :
  sudo /etc/init.d/mldonkey-server stop

Maintenant nous allons [[:tutoriel:comment_editer_un_fichier|éditer le fichier]] ''/var/lib/mldonkey/downloads.ini''\\
Il faut trouver la ligne contenant les paramètres **incoming_directory** et **temp_directory**, puis les remplacer par les répertoires de votre choix :

Ce qui donne par exemple :
  temp_directory = "/home/mondossierpersonnel/.mldonkey/temp"
  
  (* The directory where downloaded files should be moved after commit *)
  incoming_directory = "/home/mondossierpersonnel/.mldonkey/fini"

Bien sûr nous devons créer ces deux répertoires.

**Sous Feisty (en mode utilisateur)**

Les dossiers se trouve dans ''/home/mondossierpersonnel/.mldonkey'', le fichier à éditer est alors ''/home/mondossierpersonnel/.mldonkey/downloads.ini''

Trouvez la section pour les fichiers temporaires :
<file>temp_directory = "/home/mondossierpersonnel/.mldonkey/temp"</file>

Puis la section pour les répertoires de partage et de classement :
<file>
 shared_directories = [
  {     dirname = "/home/mondossierpersonnel/.mldonkey/shared"    (* dossier partagé*)
     strategy = only_directory
     priority = 0
};
  {     dirname = shared
     strategy = all_files
     priority = 0
};
  {     dirname = "/home/mondossierpersonnel/.mldonkey/incoming"    (* dossier fichiers finis edonkey*)
     strategy = incoming_files
     priority = 0
};
  {     dirname = "/home/mondossierpersonnel/.mldonkey/incoming"    (* dossier fichiers finis bittorrent*)
     strategy = incoming_directories
     priority = 0
};]
</file>

==== Configuration des droits====

Pour des raisons de sécurité, le démon mldonkey est lancé par l'utilisateur ''mldonkey'' appartenant au groupe ''mldonkey''.
Pour que ce dernier puisse aller écrire dans nos deux répertoires fraîchement crées, il faut modifier les droits :

On attribue les dossiers de mldonkey au groupe ''mldonkey'' :
  sudo chgrp -R mldonkey /home/mondossierpersonnel/.mldonkey/*

Enfin on autorise seulement les utilsateurs du groupe mldonkey à lire et modifier ces répertoires :
  sudo chmod 660 -R /home/mondossierpersonnel/.mldonkey/*

Comme l'utilisateur ''mldonkey'', appartient également au groupe ''mldonkey'' et que le démon est lancé par l'utilisateur ''mldonkey'', ce dernier pourra donc lire et écrire dans les répertoires définis.

**Sous Feisty (en mode utilisateur) cette étape n'est plus obligatoire.**

Une commande se révèle utile pour vérifier le bon positionnement des droits:
sudo -u mldonkey /usr/bin/mlnet.

Un message d'erreur explicite "check rights" apparaît si les droits ne permettent pas à mldonkey d'écrire dans son répertoire.

==== En cas de problème : mode verbose ====

Lorsque MLDonkey ne démarre plus et qu'il n'y a rien dans le log, il faut modifier le script de démarrage ''/etc/init.d/mldonkey-server'' pour afficher des informations supplémentaires. Pour cela, chercher les lignes :
  start-stop-daemon --start $WRAPPER_OPTIONS \
  --pidfile $PIDFILE --background --exec $EXEC \
  -- -log_file $SERVERLOG -pid $PIDDIR 2>&1

et remplacer ''--background'' par ''--verbose''. 
Au démarrage du service (''service mldonkey-server start''), des infos seront affichées, et probablement la cause du problème. Ensuite, rétablir la ligne modifiée.

NB : ces lignes peuvent varier suivant les versions. Version pour cet exemple : 3.0.1.

===== Installation d'un client graphique =====

Comme je l'ai dit, MLDonkey n'est que le cœur du système de téléchargement. Pour pouvoir le piloter facilement il vous faut un client graphique qui se connectera au démon et lui enverra des commandes. 

L'avantage est que vous pouvez fermer le client graphique, le démon lui, continue à télécharger. Donc vous pouvez fermer votre session Unity, et continuer à télécharger.

Un autre avantage est que vous pouvez configurer un PC dédié uniquement au téléchargement sur lequel tourne le démon, et piloter le téléchargement depuis un autre PC, ou même du bureau. Donc en résumé par exemple, un PC dans le salon qui fait du bruit et qui télécharge, un pc dans la chambre depuis lequel on lance les téléchargements et qu'on peut éteindre la nuit.

Par défaut vous utilisez MLDonkey en tant qu'utilisateur **admin**.

Si vous voulez l'utilisez à l'extérieur, vous pouvez facilement définir un reverse proxy dans apache qui pointera par exemple sur le dossier http://monsite/mldonkey.
Comme ça, depuis internet, vous pouvez lancer des téléchargements.

====WebUI====

MLDonkey fourni nativement une interface web pour piloter le démon. Elle est accessible par défaut sur le port 4080 (vous pouvez le changer dans la configuration de MLDonkey) de la machine qui héberge le démon (vous pouvez donc accéder à votre interface web à l'adresse [[http://localhost:4080/]]). Cette interface est en anglais uniquement.

==== MLdonkeyGtkUi ====

Le premier client graphique que je vous présente est le plus simple à installer.\\
Il suffit d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **mldonkey-gui**

Puis le démarrer soit:
  *En utilisant les menus, cliquez sur **Internet** puis **MLDonkey**.
  *Ou alors, lancez l'application via le [[:unity#tableau_de_bord_dash|dash]] (Ubuntu 11.04 et ultérieures) ou via le [[:terminal]] (toutes versions d'Ubuntu) avec la [[:commande_shell|commande]] suivante :
<code>mlgui</code>

==== KMLDonkey - Interface KDE ====

Voir la page dédiée : [[KMLDonkey]]

==== Sancho - Interface Gnome ====

Il existe plusieurs interfaces graphiques, ma préférée est sancho : http://sancho-gui.sourceforge.net/
Ce dernier devrait devenir le futur client graphique officiel à mldonkey.

C'est une interface gtk2 avec un icône dans le systray.

=== Installation ===

Récupérez l'archive de sancho ici : http://sancho-gui.sourceforge.net/download.phtml#linux-gtk

Choisissez la dernière version, aujourd'hui (21/06/2009) c'est : **sancho-0.9.4-59-linux-gtk.sh**.
Cette version fonctionne sur Hardy i386 et **sancho-0.9.4-59-linux-gtk-x86_64-java.sh** sur jaunty x86_64.

Nous supposerons que l'archive est téléchargée dans votre dossier personnel.

Créez le répertoire d'installation :
  sudo mkdir /usr/local/sancho

Maintenant exécutons le script d'installation :
  sudo sh ~/sancho-0.9.4-59-linux-gtk.sh

Le script vous demande où le logiciel doit être installé :
<file>Extract to directory [<sancho-0.9.4-59-linux-gtk>]:</file>

Taper donc ''/usr/local/sancho''

Sancho est installé. Nous allons lui créer une entrée dans le menu **Applications => internet**.

[[:tutoriel:comment_editer_un_fichier|Créez le fichier]] **/usr/share/applications/sancho.desktop** et mettez-y les lignes suivantes :
<file>
[Desktop Entry]
Name=Sancho
Comment=Sancho
Exec=/usr/local/sancho/sancho
Icon=/usr/local/sancho/distrib/sancho-32.xpm
Terminal=false
Type=Application
StartupNotify=false
Categories=Application;Network;
</file>

Les fichiers de configuration de sancho dans votre dossier personnel appartiennent à **root** (car vous avez lancé l'installation en tant qu'administrateur). Nous allons donc remettre le bon propriétaire (vous !) à ces fichiers :
  sudo chown -R $USER:$USER ~/.sancho
//(vous pouvez remplacer $USER par votre login bien sûr ;-)//

Vous pouvez maintenant démarrer **sancho** depuis le menu **applications => internet**.

=== Mettre sancho en français ===

Récupérer le fichier de traduction [[http://sancho-gui.sourceforge.net/properties/8pid0jfwxqa2/sancho_fr_FR.properties|sancho_fr_FR.properties]] et copiez ce fichier dans le répertoire .sancho/ situé dans votre dossier personnel

**Si vous êtes sous Feisty, le fichier est déjà présent après l'installation.**

Démarrez **sancho**, allez dans **Tools => Preferences**. Dans la section **sancho:main**, dans l'onglet **General**, là où il y a écrit « Locale specific sancho*.properties file », choisissez **fr_FR** dans le menu déroulant puis redémarrez l'application.

Vous pouvez d'ailleurs supprimer les autres fichiers de langue que vous n'utilisez pas du répertoire ~/.sancho\\
Les fichiers de langues sont du type ''sancho_xx_XX.properties''\\
//par exemple : sancho_pl_PL.properties pour le polonais//

=== Dernière étape : se connecter à un serveur ===

La dernière étape et de se connecter à un serveur pour pouvoir lancer une recherche.

Cliquez sur l'onglet serveur.

En haut a droite cliquez sur la planète avec une croix verte intitulé "ajouter un fichier serveur.met" entrez-y l'adresse d'un fichier de serveur .met que vous récupèrerez sur des sites comme [[http://ed2k.2x4u.de]]

Il devrait aussi récupérer une liste d'autre serveurs.

NB : Il est plus sûr de désactiver les options de récupération automatique des serveurs afin d'éviter de recevoir des serveurs espions. Dans ce cas une liste de serveurs sûrs doit être récupérée en téléchargeant un des fichiers ".met" ci-dessus.

Une fois connecté lancez une recherche.

=== Lancement du démon avec l'interface graphique Sancho sous Feisty ===

Pour lancer le démon automatiquement au démarrage de Sancho et le couper à la fermeture de Sancho (a la manière de Amule) :
  mlnet -start_gui true -mldonkey_gui /usr/local/sancho/sancho

Puis vous pouvez simplement lancer mlnet, le serveur lancera toujours Sancho 

**N'oubliez pas d'autorisez Sancho a couper le serveur mldonkey lorsque vous quittez :**
 
 outils / préférences :
  * optional core executable : mlnet
  * cocher Kill spawned core when exiting sancho 

Pour revenir a la configuration par defaut, [[:tutoriel/comment_editer_un_fichier|éditez le fichier]] /home/mondossierpersonnel/.mldonkey/download.ini et cherchez la ligne mldonkey_gui 






===== Filtrage des IP ===== 

**Pour Feisty :**

Vous pouvez vous servir d'un ipfilter.dat en le placant dans le dossier **~/.mldonkey**

Pour la compatibilité d'un fichier ipfilter.dat :

  * récupérer un fichier :[[http://emulepawcio.sourceforge.net/nieuwe_site/Ipfilter_fakes/ipfilter.dat|Ipfilter.dat ]] ;
  * [[:tutoriel/comment_editer_un_fichier|éditez ce fichier]] et supprimer toutes les lignes (avec les #) avant la série de chiffre .

<note tip>Vous pouvez aussi utiliser [[recherche_ligne_commande#grep]] pour filtrer les lignes commentées (avec les #) : <code>grep -v ^# ipfilter.dat > ipfilter.p2p</code></note>

===== Ports utilisés =====

Si vous avez installé Sancho, cliquer sur l'onglet console et rentrer la commande **portinfo**, le résultat donne pour moi :
<code>
	--Portinfo--
Network   |  Port|Type
---------- ------ -------------------
BitTorrent|  6882|client_port TCP
BitTorrent|  6881|tracker_port TCP
Core      |  4080|http_port
Core      |  4000|telnet_port
Core      |  4001|gui_port
Donkey    | 4662|client_port TCP
Donkey    | 4666|client_port UDP
Donkey    | 14934|overnet_port TCP UDP
Donkey    | 4672|kademlia_port UDP
</code>

Pour changer les ports sous Feisty :

**ATTENTION : N'éditez pas ces fichiers si le démon est lancé.**

[[:tutoriel:comment_editer_un_fichier|éditez le fichier]] **~/.mldonkey/nomduprotocole.ini**

avec nomduprotocole :

  * Pour Edonkey, Overnet, Kademlia : éditer le fichier /home/mondossierpersonnel/.mldonkey/donkey.ini.

  * Pour Bittorrent : éditer le fichier /home/mondossierpersonnel/.mldonkey/bittorent.ini. (?bittorrent.ini)

etc...

===== Integration à Firefox =====

L'extension pour la prise en charge directe est disponible pour le protocole edonkey et bittorrent dans ce dossier :

**/usr/share/doc/mldonkey-server/distrib/ed2k_mozilla/mldonkey_protocol_handler-1.8.xpi** .

Pour firefox 3.0 : mldonkey_protocol_handler-2.4.xpi :[[http://www.informatik.uni-oldenburg.de/~dyna/mldonkey/history.html]]


> **Pour l'installation aller voir [[firefox|Firefox]]** 

===== Un système d'analyse anti-virus et d'alerte =====

Dernier raffinement, vous pouvez vous créer un script (shell, php, perl, ...) qui sera lancé au démarrage et à la récupération d'un fichier.
Cela permet d'avertir l'utilisateur, de scanner avec un anti-virus le fichier récupéré, et même de le sortir de l'incoming, pour éviter les problèmes d'upload.
Allez voir dans downloads.ini, jusqu'a la commande file_completed.
Si il y en a que ca intéresse, je peux joindre la copie de mon script (home made 100% pas propre).


=====Voir aussi=====
  * [[http://mldonkey.sourceforge.net/|Site officiel]]

----

//Contributeur : [[utilisateurs:mathieu.vilaplana]], [[utilisateurs:Boris Le Hachoir]]//